Skip to main content

Where to Begin

Gem5 is a big program and learning to make scripts to simulate processors is a pretty difficult thing in itself. To begin, lets look at this imports

Imports

gem5 configuration scripts are python scripts, so the syntax should be familiar to you. First thing we need to is import the necessary utilities from gem5:

import m5  # the gem5 utilities
from m5.objects import * # common objects
note

The m5 import gives us access to all of the gem5 'standard library', there is very little documentation for everything you get with this import, but the source code is located in $GEM_PATH/src/python/m5, so go enjoy some code reading.

note

If you want to learn more about how gem5 works, then please make your way to the About gem5 page. This section is purely about using gem5.

I would also suggest importing sys and os from python. In addition, I make use of m5.util for the fatal function, however using this is optional at this point.

The Code So Far

# import the m5 (gem5) library created when gem5 is built
import m5
import os
import sys

# import all of the SimObjects
from m5.objects import *
from m5.util import fatal

This tutorial is heavily based on learning gem5 with some modifications for the University of Alberta CMPUT 429 course made by Ayrton Chilibeck in Summer 2024.